package com.kingdee.openimport.patch_service.enume;

import com.kingdee.openimport.patch_service.exception.PatchException;
import com.kingdee.openimport.patch_service.util.StringUtils;

/**
 * Created by Niki on 2018/5/8 10:36
 */
public enum ErrorCode {
    SUCCESS("100", ""),
    TYPE_ERROR("201", "补丁类型错误，仅支持" + PatchType.allType()),
    FILE_ERROR("202", "补丁文件异常，请检查后重新上传！"),
    FILE_TYPE_ERROR("203", "文件类型异常，暂时仅支持[class, jsp]"),
    VERSION_NOT_EXIST("204", "补丁版本不存在"),
    SAVE_FILE_ERROR("205", "保存补丁文件异常！"),
    NO_PATTCH("206", "没有找到对应的补丁！"),
    ;

    private String msg;
    private String code;
    /**
     * @param code
     * @param msg
     */
    private ErrorCode(String code, String msg) {
        this.msg = msg ;
        this.code = code ;
    }

    public String getCode() {
        return code ;
    }

    public String getMsg() {
        return msg ;
    }

    /**
     * 查询错误码code对应的msg，如果没有找到则返回空字符
     * @author shuhao_fang @date 2018年1月10日 下午3:20:23
     * @param code
     * @return
     */
    public static String getMsgByCode(String code){
        if(StringUtils.isBlank(code)){
            return "";
        }
        try {
            ErrorCode obj = ErrorCode.valueOf("E_".concat(code));
            return obj.getMsg();
        } catch (IllegalArgumentException e) {

        }
        return "" ;
    }

    /**
     * 创建对应异常吗的异常实例
     * @author shuhao_fang @date 2018年2月8日 上午10:00:51
     * @param error
     * @return
     */
    public static PatchException returnException(ErrorCode error){
        return new PatchException(error.getCode(), error.getMsg());
    }
}
